#pragma once

class CPref  
{
public:
	CPref();
	virtual ~CPref();

	public:
	static CPref* instance(void)
	{
		static CPref p;
		return &p;
	}

public:
	virtual	void	SetSharedPref(LPCTSTR szSharedPrefName, LPCTSTR szValue, LPCTSTR szSectionName = _T("Settings"), BOOL bEncrypt = FALSE);
	virtual	CString GetSharedPref(LPCTSTR szSharedPrefName, LPCTSTR szSectionName = _T("Settings"), BOOL bEncrypted = FALSE);
	virtual	BOOL	GetSharedPref(LPCTSTR szSharedPrefName, LPTSTR szBuff, int * pcbBuffSize, LPCTSTR szSectionName = _T("Settings"), BOOL bEncrypted = FALSE);
	virtual	void	DeleteRegistryKey(LPCTSTR szCompany, LPCTSTR szAppName, LPCTSTR szSection, LPCTSTR szDataName);
};

#define PURE_PREF() (CPref::instance())